Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Service Request Block</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Service_Request_Block"> <link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Service_Request_Block rootpage-Service_Request_Block skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Service Request Block</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style>
<p>A <b>Service Request Block</b> (<b>SRB</b>) is a <a href="Data_structure" title="Data structure">data structure</a> of <a href="MVS/370" class="mw-redirect" title="MVS/370">MVS/370</a> and successor versions of <a href="IBM_mainframe" title="IBM mainframe">IBM mainframe</a> <a href="Operating_system" title="Operating system">operating systems</a> employed mainly, but not exclusively, by the <a href="Start_Input/Output" title="Start Input/Output">Start Input/Output</a> interface.
</p><p>An SRB may be considered, in the abstract, to be a highly optimized <a href="Task_Control_Block" title="Task Control Block">Task Control Block</a> (TCB), one which has few, if any, associated resources other than access to the processor itself. All system resources which are utilized under an SRB must be accessed through the use of "branch entries", some of which are new entries to traditional system services which were formerly accessed exclusively using <a href="Supervisor_Call_instruction" title="Supervisor Call instruction">SVC</a> instructions (which an SRB may not employ for any purpose other than abnormally terminating itself in which case SVC 13, ABEND, may be used, however the "branch entry" to ABTERM is really more appropriate).
</p><p>When employed by the Start Input/Output interface, an SRB is always paired with an <a href="Input/Output_Supervisor_Block" title="Input/Output Supervisor Block">Input/Output Supervisor Block</a> (IOSB).
</p><p>When otherwise employed, an SRB facilitates <i>inter</i>-<a href="Address_space" title="Address space">address-space</a> communication in general, and <i>inter</i>-<a href="Inter-process_communication" title="Inter-process communication">application</a> communication in particular.
</p><p>SRBs may also be employed for <i>intra</i>-address-space processes, where the highest possible performance is required, and in this case the necessary resources are first acquired under a TCB (usually the "job step" TCB), before the SRBs are SCHEDULEd (i.e., are presented to the system dispatcher to compete for processor resources).
</p><p>It is conceivable that an address space may have but one TCB (again, the "job step" TCB) but tens or hundreds or even thousands of SRBs, with the SRBs performing almost all of the work in the address space, and the TCB merely synchronizing the SRBs and responding to communications from the system operator.
</p><p>For purposes of such synchronization, the TCB will usually issue a WAITR, SVC 1, specifying a list of Event Control Blocks (ECBs; one ECB per SRB, plus one for the system operator), and each SRB will indicate its completion to the TCB by using a "branch entry" to the POST system service (which is normally SVC 2, but in this special case would be a call to the address contained in CVT0PT01), and specifying the ECB which is associated with its SRB, and possibly a "message" to the TCB. The "message", should it be present, is often placed in the lowest 24 bits of the ECB, and which is otherwise unused. The highest eight bits are used by the system.
</p><p>Disk device access and network device access is available to SRBs using the "improved control interval processing" feature of VSAM and the "fast path" feature of VTAM, respectively.
</p>
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<p>With the introduction of MVS/370 and successor systems, a whole new environment was introduced: the Service Request Block (SRB), which generally has a higher priority than any TCB, and, indeed, which itself has two distinct priorities: a Global SRB (priority over all local address space SRBs and TCBs) and a Local SRB (priority over only the local address space TCBs); and MVS's dispatcher must manage all of these with absolute consistency across as many as two processors (MVS/370) and as many as 16 processors (successor systems). More than sixteen processors are available on some z/System models. z/System support for <a href="ZIIP" title="ZIIP">zIIP</a> has dramatically increased the use of SRBs (over and above their traditional Start Input/Output usage).
</p><p>An SRB is a highly-optimized instance of a <a href="Process_control_block" title="Process control block">Process control block</a> in these MVS/370 and successor systems. A TCB is a general-purpose instance of a Process control block in these OS/360 and successor systems.
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Process_control_block" title="Process control block">Process control block</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.1.0/com.ibm.zos.v2r1.ieaa800/schsrb.htm">Using a Service Request Block (SRB)</a></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-02-08" href="https://en.wikipedia.org/wiki/?title=Service_Request_Block&amp;oldid=1274735342">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>